﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using FBWMS;

namespace FBWMS
{
    public partial class F_COM_Search_FB_NO : Form
    {

        /// <summary>
        /// DataGrid DataSource
        /// </summary>
        private DataTable dt_FB_NO = null;
        
        ////////////////////////////////////////////////////////////////////////////
        //
        //初期処理
        //
        ////////////////////////////////////////////////////////////////////////////
        public F_COM_Search_FB_NO()
        {
            string str_Message = string.Empty;
            string str_Caption = string.Empty;
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "F_COM_Search_FB_NO Init Start", "F_COM_Search_FB_NO");

                //初期処理
                InitializeComponent();

                //入出庫コンボボックス生成
                this.P_CreateNsyukCombo();

                //ステータスコンボボックス生成
                this.P_CreateStatusCombo();

                //検索条件コンボボックス生成
                this.P_CreateSearchCombo();

                G_CommonClassControl.G_Control_MakeData_ComboBox(this.cmb_Data_CD, "Data_CD");

                if (G_CommonDefine.G_Nsk_KB != "")
                {
                    this.cmb_Nsyk_KB.SelectedValue = G_CommonDefine.G_Nsk_KB.ToString();
                    this.cmb_Nsyk_KB.Enabled = false;

                    this.cmb_Search_Mode.SelectedValue = "2";
                    this.txt_Search_CD.Focus();
                }

                //サブフォームの行の交互色を設定する
                //this.mr_F_COM_Search_FB_NO_SUB.AlternateMRowColor = true;
                //this.mr_F_COM_Search_FB_NO_SUB.MRowColorPattern = G_CommonDefine.G_col_MultiRowSheetBackColor;

                //FB_NOの初期化
                G_CommonDefine.G_txt_FB_NO.Text = "";

                //Initialize DataGrid
                P_Initialize();

                //ToolTipの設定
                G_CommonDefine.G_tt_ToolTip.RemoveAll();
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Clear, "F11");
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Search, "F1");

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "F_COM_Search_FB_NO Init End", "F_COM_Search_FB_NO");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "F_COM_Search_FB_NO Init Error" + err.Message, "F_COM_Search_FB_NO");

                //エラーメッセージ表示
                str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("F_COM_Search_FB_NO" + err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #region イベントハンドラ ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //検索ボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Search_Click(object sender, EventArgs e)
        {
            try
            {
                if (!this.P_Check_Search())
                {
                    return;
                }

                //待機画面の表示
                G_CommonClassOther.G_Other_WaitForm(true);

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "btn_Search_Click Start", "btn_Search_Click");

                //検索処理
                this.P_Search();

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "btn_Search_Click End", "btn_Search_Click");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "btn_Search_Click Error" + ex.Message, "btn_Search_Click");

                //エラーメッセージ表示
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Search_Click" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (G_CommonDefine.G_F_COM_Waiting != null)
                {
                    //待機画面の解除
                    G_CommonClassOther.G_Other_WaitForm(false);
                }
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //クリアボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Clear_Click(object sender, EventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "btn_Clear_Click Start", "btn_Clear_Click");

                //クリア処理
                this.P_Clear();

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "btn_Clear_Click End", "btn_Clear_Click");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "btn_Clear_Click Error" + ex.Message, "btn_Clear_Click");

                //エラーメッセージ表示
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("btn_Clear_Click" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //サブフォームセルクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        //private void mr_F_COM_Search_FB_NO_SUB_CellClick(object sender, GrapeCity.Win.ElTabelle.MClickEventArgs e)
        //{
        //    try
        //    {
        //        //ログ書込み
        //        G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "mr_F_COM_Search_FB_NO_SUB_CellClick処理開始", "mr_F_COM_Search_FB_NO_SUB_CellClick");

        //        //情報ボタンクリック時
        //        if (this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.ActiveColumnIndex.ToString() == "0")
        //        {
        //            //サブフォームセルクリック処理
        //            this.P_Sub_CellClick();
        //        }

        //        //ログ書込み
        //        G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "mr_F_COM_Search_FB_NO_SUB_CellClick処理終了", "mr_F_COM_Search_FB_NO_SUB_CellClick");
        //    }
        //    catch (Exception err)
        //    {
        //        //ログ書込み
        //        G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "mr_F_COM_Search_FB_NO_SUB_CellClick処理エラー" + err.Message, "mr_F_COM_Search_FB_NO_SUB_CellClick");

        //        //エラーメッセージ表示
        //        MessageBox.Show("mr_F_COM_Search_FB_NO_SUB_CellClick処理エラー" + err.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
        //    }
        //}

        ////////////////////////////////////////////////////////////////////////////
        //
        //検索コードコンボボックス変更時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void cmb_Search_Mode_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "cmb_Search_Mode_SelectedIndexChanged Start", "cmb_Search_Mode_SelectedIndexChanged");

                //検索テキストボックスにフォーカスをセットする。
                this.txt_Search_CD.Focus();

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "cmb_Search_Mode_SelectedIndexChanged End", "cmb_Search_Mode_SelectedIndexChanged");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "cmb_Search_Mode_SelectedIndexChanged Error" + ex.Message, "cmb_Search_Mode_SelectedIndexChanged");

                //エラーメッセージ表示
                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("cmb_Search_Mode_SelectedIndexChanged" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //入出庫コンボボックス変更時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void cmb_Nsyk_KB_SelectedIndexChanged(object sender, EventArgs e)
        {
            string str_Language = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();

            if (this.cmb_Nsyk_KB.SelectedValue.ToString() == "1")
            {
                this.cmb_Status_Syk.Visible = false;
              
                this.cmb_Status_Nyk.Visible = true;
                if (str_Language == "en")//EN position is different
                    this.cmb_Status_Nyk.Location = new Point(562, 92);
                else
                    this.cmb_Status_Nyk.Location = new Point(609, 92);

            }
            else
            {
                this.cmb_Status_Nyk.Visible = false;

                this.cmb_Status_Syk.Visible = true;
                if (str_Language == "en")
                    this.cmb_Status_Syk.Location = new Point(562, 92);
                else
                    this.cmb_Status_Syk.Location = new Point(609, 92);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //フォームClosing時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_Search_FB_NO_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "F_COM_Search_FB_NO_FormClosing処理開始", "F_COM_Search_FB_NO_FormClosing");

                G_CommonDefine.G_Nsk_KB = "";

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "F_COM_Search_FB_NO_FormClosing処理終了", "F_COM_Search_FB_NO_FormClosing");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "F_COM_Search_FB_NO_FormClosing処理エラー" + ex.Message, "F_COM_Search_FB_NO_FormClosing");

                //エラーメッセージ表示
                MessageBox.Show("F_COM_Search_FB_NO_FormClosing処理エラー" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //サブフォームセルダブルクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        //private void mr_F_COM_Search_FB_NO_SUB_CellDoubleClick(object sender, GrapeCity.Win.ElTabelle.MClickEventArgs e)
        //{
        //    int int_Current = this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.ActiveRowIndex + 1;
        //    int int_Total = this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.Rows.Count;

        //    MessageBox.Show(string.Format("現在のレコード : {0} / レコード総数 : {1}", int_Current, int_Total));
        //}

        ////////////////////////////////////////////////////////////////////////////
        //
        //DataGrid Button Click Event
        //
        ////////////////////////////////////////////////////////////////////////////
        private void mr_F_COM_Search_FB_NO_SUB_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
        {
            try
            {
                if (this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.Cells[e.Row, 1].Value == null)
                    return;
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "mr_F_COM_Search_FB_NO_SUB_ButtonClicked Start", "mr_F_COM_Search_FB_NO_SUB_ButtonClicked");

                G_CommonDefine.G_txt_FB_NO.Text = this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.Cells[e.Row, 1].Value.ToString();
                this.Close();

                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "mr_F_COM_Search_FB_NO_SUB_ButtonClicked End", "mr_F_COM_Search_FB_NO_SUB_ButtonClicked");
            }
            catch (Exception err)
            {

                string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "mr_F_COM_Search_FB_NO_SUB_ButtonClicked" + err.Message, "mr_F_COM_Search_FB_NO_SUB_ButtonClicked");
                MessageBox.Show(err.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #endregion *************************************************************************

        #region プライベート関数 ***********************************************************

        /// <summary>
        /// 入出荷コンボボックス生成処理
        /// </summary>
        private void P_CreateNsyukCombo()
        {
            string str_Message = string.Empty;
            string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "P_CreateNsyukCombo Start", "P_CreateNsyukCombo");

                string str_Language = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();

                //1:入庫、0:出庫
                DataSet ds = new DataSet();
                ds.Tables.Add();

                //列の追加
                ds.Tables[0].Columns.Add();
                ds.Tables[0].Columns.Add();

                //行の追加
                ds.Tables[0].Rows.Add();
                ds.Tables[0].Rows.Add();
                switch (str_Language)
                {
                    case "en":
                        ds.Tables[0].Rows[0][0] = "1";
                        ds.Tables[0].Rows[0][1] = "Receiving";
                        ds.Tables[0].Rows[1][0] = "0";
                        ds.Tables[0].Rows[1][1] = "Issuing";
                        break;
                    case "zh-CHS":
                        ds.Tables[0].Rows[0][0] = "1";
                        ds.Tables[0].Rows[0][1] = "入库";
                        ds.Tables[0].Rows[1][0] = "0";
                        ds.Tables[0].Rows[1][1] = "出库";
                        break;
                    default:
                        ds.Tables[0].Rows[0][0] = "1";
                        ds.Tables[0].Rows[0][1] = "入庫";
                        ds.Tables[0].Rows[1][0] = "0";
                        ds.Tables[0].Rows[1][1] = "出庫";
                        break;
                }

                if (!G_CommonClassControl.G_Control_SetData_ComboBox(cmb_Nsyk_KB, ds, 1, 0))
                {
                    str_Message = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_BindComboBox);
                    MessageBox.Show(str_Message);
                    return;
                }

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "P_CreateNsyukCombo End", "P_CreateNsyukCombo");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "P_CreateNsyukCombo Error" + ex.Message, "P_CreateNsyukCombo");

                //エラーメッセージ表示
                str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("P_CreateNsyukCombo" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        /// ステータスコンボボックス生成処理
        /// </summary>
        private void P_CreateStatusCombo()
        {
            string str_Message = string.Empty;
            string str_Caption = string.Empty;
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "P_CreateStatusCombo Start", "P_CreateStatusCombo");

                string str_Language = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();

                DataSet ds_Nyk = new DataSet();
                ds_Nyk.Tables.Add();
                ds_Nyk.Tables[0].Columns.Add();
                ds_Nyk.Tables[0].Columns.Add();

                //出庫予定登録画面から呼ばれた際
                if (G_CommonDefine.G_Status_ST == "00" && G_CommonDefine.G_Status_ED == "10")
                {
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows[0][0] = "";
                    ds_Nyk.Tables[0].Rows[0][1] = "";
                    switch (str_Language)
                    {
                        case "en":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "Data Registration"; 
                            break;
                        case "zh-CHS":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "数据录入"; 
                            break;
                        default:
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "データ登録"; 
                            break;
                    }
                }
                //EDI出荷明細書修正画面から呼ばれた際
                else if (G_CommonDefine.G_Status_ST == "20" && G_CommonDefine.G_Status_ED == "60")
                {
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows[0][0] = "";
                    ds_Nyk.Tables[0].Rows[0][1] = "";
                    switch (str_Language)
                    {
                        case "en":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "Data Registration";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "Inspection Completion";
                            break;
                        case "zh-CHS":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "数据录入";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "品检完成";
                            break;
                        default:
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "データ登録";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "検品完了";
                            break;
                    }

                }
                else
                {
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows.Add();
                    ds_Nyk.Tables[0].Rows[0][0] = "";
                    ds_Nyk.Tables[0].Rows[0][1] = "";
                    switch (str_Language)
                    {
                        case "en":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "Data Registration";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "Inspection Completion";
                            ds_Nyk.Tables[0].Rows[3][0] = "70";
                            ds_Nyk.Tables[0].Rows[3][1] = "Rack In Completion";
                            ds_Nyk.Tables[0].Rows[4][0] = "90";
                            ds_Nyk.Tables[0].Rows[4][1] = "Sent Result";
                            break;
                        case "zh-CHS":
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "数据录入";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "品检完成";
                            ds_Nyk.Tables[0].Rows[3][0] = "70";
                            ds_Nyk.Tables[0].Rows[3][1] = "上架完成";
                            ds_Nyk.Tables[0].Rows[4][0] = "90";
                            ds_Nyk.Tables[0].Rows[4][1] = "发送完成";
                            break;
                        default:
                            ds_Nyk.Tables[0].Rows[1][0] = "00";
                            ds_Nyk.Tables[0].Rows[1][1] = "データ登録";
                            ds_Nyk.Tables[0].Rows[2][0] = "50";
                            ds_Nyk.Tables[0].Rows[2][1] = "検品完了";
                            ds_Nyk.Tables[0].Rows[3][0] = "70";
                            ds_Nyk.Tables[0].Rows[3][1] = "棚入完了";
                            ds_Nyk.Tables[0].Rows[4][0] = "90";
                            ds_Nyk.Tables[0].Rows[4][1] = "実績送信";
                            break;
                    }
                }

                if (!G_CommonClassControl.G_Control_SetData_ComboBox(this.cmb_Status_Nyk, ds_Nyk, 1, 0))
                {
                    str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_BindComboBox);
                    MessageBox.Show(str_Caption);
                    return;
                }

                DataSet ds_Syk = new DataSet();
                ds_Syk.Tables.Add();
                ds_Syk.Tables[0].Columns.Add();
                ds_Syk.Tables[0].Columns.Add();

                //出庫予定登録画面から呼ばれた際
                if (G_CommonDefine.G_Status_ST == "00" && G_CommonDefine.G_Status_ED == "10")
                {
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows[0][0] = "";
                    ds_Syk.Tables[0].Rows[0][1] = "";

                    switch (str_Language)
                    {
                        case"en":
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "Data Registration";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "Delivery Method Decision";
                            break;
                        case "zh-CHS":
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "数据录入";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "送货方式决定";
                            break;
                        default:
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "データ登録";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "運送決定";
                            break;
                    }
                }
                //EDI出荷明細書修正画面から呼ばれた際
                else if (G_CommonDefine.G_Status_ST == "20" && G_CommonDefine.G_Status_ED == "60")
                {
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows[0][0] = "";
                    ds_Syk.Tables[0].Rows[0][1] = "";

                    switch (str_Language)
                    {
                        case "en":
                            ds_Syk.Tables[0].Rows[1][0] = "20";
                            ds_Syk.Tables[0].Rows[1][1] = "StockDeductionCompletion";
                            ds_Syk.Tables[0].Rows[2][0] = "30";
                            ds_Syk.Tables[0].Rows[2][1] = "Picking List Pritnted";
                            ds_Syk.Tables[0].Rows[3][0] = "40";
                            ds_Syk.Tables[0].Rows[3][1] = "Picking Completion";
                            ds_Syk.Tables[0].Rows[4][0] = "50";
                            ds_Syk.Tables[0].Rows[4][1] = "Inspection Completion";
                            ds_Syk.Tables[0].Rows[5][0] = "60";
                            ds_Syk.Tables[0].Rows[5][1] = "Packing";
                            break;
                        case "zh-CHS":
                            ds_Syk.Tables[0].Rows[1][0] = "20";
                            ds_Syk.Tables[0].Rows[1][1] = "扣仓完成";
                            ds_Syk.Tables[0].Rows[2][0] = "30";
                            ds_Syk.Tables[0].Rows[2][1] = "提取清单打印";
                            ds_Syk.Tables[0].Rows[3][0] = "40";
                            ds_Syk.Tables[0].Rows[3][1] = "提取完成";
                            ds_Syk.Tables[0].Rows[4][0] = "50";
                            ds_Syk.Tables[0].Rows[4][1] = "品检完成";
                            ds_Syk.Tables[0].Rows[5][0] = "60";
                            ds_Syk.Tables[0].Rows[5][1] = "包装完成";
                            break;
                        default:
                            ds_Syk.Tables[0].Rows[1][0] = "20";
                            ds_Syk.Tables[0].Rows[1][1] = "引当完了";
                            ds_Syk.Tables[0].Rows[2][0] = "30";
                            ds_Syk.Tables[0].Rows[2][1] = "ピッキングリスト発行";
                            ds_Syk.Tables[0].Rows[3][0] = "40";
                            ds_Syk.Tables[0].Rows[3][1] = "ピッキング完了";
                            ds_Syk.Tables[0].Rows[4][0] = "50";
                            ds_Syk.Tables[0].Rows[4][1] = "検品完了";
                            ds_Syk.Tables[0].Rows[5][0] = "60";
                            ds_Syk.Tables[0].Rows[5][1] = "梱包完了";
                            break;
                    }
                }
                else
                {
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows.Add();
                    ds_Syk.Tables[0].Rows[0][0] = "";
                    ds_Syk.Tables[0].Rows[0][1] = "";

                    switch (str_Language)
                    {
                        case "en":
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "Data Registration";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "Delivery Method Decision";
                            ds_Syk.Tables[0].Rows[3][0] = "20";
                            ds_Syk.Tables[0].Rows[3][1] = "StockDeductionCompletion";
                            ds_Syk.Tables[0].Rows[4][0] = "30";
                            ds_Syk.Tables[0].Rows[4][1] = "Picking List Pritnted";
                            ds_Syk.Tables[0].Rows[5][0] = "40";
                            ds_Syk.Tables[0].Rows[5][1] = "Picking Completion";
                            ds_Syk.Tables[0].Rows[6][0] = "50";
                            ds_Syk.Tables[0].Rows[6][1] = "Inspection Completion";
                            ds_Syk.Tables[0].Rows[7][0] = "60";
                            ds_Syk.Tables[0].Rows[7][1] = "Packing";
                            ds_Syk.Tables[0].Rows[8][0] = "90";
                            ds_Syk.Tables[0].Rows[8][1] = "Sent Result";
                            break;
                        case "zh-CHS":
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "数据录入";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "送货方式决定";
                            ds_Syk.Tables[0].Rows[3][0] = "20";
                            ds_Syk.Tables[0].Rows[3][1] = "扣仓完成";
                            ds_Syk.Tables[0].Rows[4][0] = "30";
                            ds_Syk.Tables[0].Rows[4][1] = "提取清单打印";
                            ds_Syk.Tables[0].Rows[5][0] = "40";
                            ds_Syk.Tables[0].Rows[5][1] = "提取完成";
                            ds_Syk.Tables[0].Rows[6][0] = "50";
                            ds_Syk.Tables[0].Rows[6][1] = "品检完成";
                            ds_Syk.Tables[0].Rows[7][0] = "60";
                            ds_Syk.Tables[0].Rows[7][1] = "包装完成";
                            ds_Syk.Tables[0].Rows[8][0] = "90";
                            ds_Syk.Tables[0].Rows[8][1] = "发送完成";
                            break;
                        default:
                            ds_Syk.Tables[0].Rows[1][0] = "00";
                            ds_Syk.Tables[0].Rows[1][1] = "データ登録";
                            ds_Syk.Tables[0].Rows[2][0] = "10";
                            ds_Syk.Tables[0].Rows[2][1] = "運送決定";
                            ds_Syk.Tables[0].Rows[3][0] = "20";
                            ds_Syk.Tables[0].Rows[3][1] = "引当完了";
                            ds_Syk.Tables[0].Rows[4][0] = "30";
                            ds_Syk.Tables[0].Rows[4][1] = "ピッキングリスト発行";
                            ds_Syk.Tables[0].Rows[5][0] = "40";
                            ds_Syk.Tables[0].Rows[5][1] = "ピッキング完了";
                            ds_Syk.Tables[0].Rows[6][0] = "50";
                            ds_Syk.Tables[0].Rows[6][1] = "検品完了";
                            ds_Syk.Tables[0].Rows[7][0] = "60";
                            ds_Syk.Tables[0].Rows[7][1] = "梱包完了";
                            ds_Syk.Tables[0].Rows[8][0] = "90";
                            ds_Syk.Tables[0].Rows[8][1] = "実績送信";
                            break;
                    }
                }

                if (!G_CommonClassControl.G_Control_SetData_ComboBox(this.cmb_Status_Syk, ds_Syk, 1, 0))
                {
                    str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_BindComboBox);
                    MessageBox.Show(str_Caption);
                    return;
                }

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "P_CreateStatusCombo End", "P_CreateStatusCombo");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "P_CreateStatusCombo Error" + ex.Message, "P_CreateStatusCombo");

                //エラーメッセージ表示
                str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("P_CreateStatusCombo" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        /// 検索条件コンボボックス生成処理
        /// </summary>
        private void P_CreateSearchCombo()
        {
            string str_Message = string.Empty;
            string str_Caption = string.Empty;
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, "P_CreateSearchCombo Start", "P_CreateSearchCombo");

                string str_Language = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();

                //0:受注伝票No、1:PicNo、2:FBNo、3:売上伝票NO、4:客注No
                DataSet ds = new DataSet();
                ds.Tables.Add();

                //列の追加
                ds.Tables[0].Columns.Add();
                ds.Tables[0].Columns.Add();

                if (G_CommonDefine.G_Nsk_KB == "1")
                {
                    //行の追加
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                  
                    switch (str_Language)
                    {
                        case "en":
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "Invoice NO";
                            ds.Tables[0].Rows[1][0] = "2";
                            ds.Tables[0].Rows[1][1] = "FB No";
                            ds.Tables[0].Rows[2][0] = "0";
                            ds.Tables[0].Rows[2][1] = "PO No";
                            ds.Tables[0].Rows[3][0] = "4";
                            ds.Tables[0].Rows[3][1] = "OS No";
 
                            break;
                        case "zh-CHS":
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "Invoice NO";
                            ds.Tables[0].Rows[1][0] = "2";
                            ds.Tables[0].Rows[1][1] = "FB No";
                            ds.Tables[0].Rows[2][0] = "0";
                            ds.Tables[0].Rows[2][1] = "PO No";
                            ds.Tables[0].Rows[3][0] = "4";
                            ds.Tables[0].Rows[3][1] = "OS No";

                            break;
                        default:
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "売上伝票NO";
                            ds.Tables[0].Rows[1][0] = "2";
                            ds.Tables[0].Rows[1][1] = "FBNo";
                            ds.Tables[0].Rows[2][0] = "0";
                            ds.Tables[0].Rows[2][1] = "受注伝票No";
                            ds.Tables[0].Rows[3][0] = "4";
                            ds.Tables[0].Rows[3][1] = "客注No";

                            break;
                    }
                }
                else
                {
                    //行の追加
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    ds.Tables[0].Rows.Add();
                    switch (str_Language)
                    {
                        case "en":
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "Invoice NO";
                            ds.Tables[0].Rows[1][0] = "1";
                            ds.Tables[0].Rows[1][1] = "PicNo";
                            ds.Tables[0].Rows[2][0] = "2";
                            ds.Tables[0].Rows[2][1] = "FBNo";
                            ds.Tables[0].Rows[3][0] = "0";
                            ds.Tables[0].Rows[3][1] = "SO No";
                            ds.Tables[0].Rows[4][0] = "4";
                            ds.Tables[0].Rows[4][1] = "CPO No";
                            ds.Tables[0].Rows[5][0] = "5";
                            ds.Tables[0].Rows[5][1] = "Job Order No";
                            break;
                        case "zh-CHS":
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "Invoice NO";
                            ds.Tables[0].Rows[1][0] = "1";
                            ds.Tables[0].Rows[1][1] = "PicNo";
                            ds.Tables[0].Rows[2][0] = "2";
                            ds.Tables[0].Rows[2][1] = "FBNo";
                            ds.Tables[0].Rows[3][0] = "0";
                            ds.Tables[0].Rows[3][1] = "SO No";
                            ds.Tables[0].Rows[4][0] = "4";
                            ds.Tables[0].Rows[4][1] = "CPO No";
                            ds.Tables[0].Rows[5][0] = "5";
                            ds.Tables[0].Rows[5][1] = "Job Order No";
                            break;
                        default:
                            ds.Tables[0].Rows[0][0] = "3";
                            ds.Tables[0].Rows[0][1] = "売上伝票NO";
                            ds.Tables[0].Rows[1][0] = "1";
                            ds.Tables[0].Rows[1][1] = "PicNo";
                            ds.Tables[0].Rows[2][0] = "2";
                            ds.Tables[0].Rows[2][1] = "FBNo";
                            ds.Tables[0].Rows[3][0] = "0";
                            ds.Tables[0].Rows[3][1] = "受注伝票No";
                            ds.Tables[0].Rows[4][0] = "4";
                            ds.Tables[0].Rows[4][1] = "客注No";
                            ds.Tables[0].Rows[5][0] = "5";
                            ds.Tables[0].Rows[5][1] = "Job Order No";
                            break;
                    }
                }
               
                if (!G_CommonClassControl.G_Control_SetData_ComboBox(cmb_Search_Mode, ds, 1, 0))
                {
                    str_Language = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_BindComboBox);
                    MessageBox.Show(str_Language);
                    return;
                }

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, "P_CreateSearchCombo End", "P_CreateSearchCombo");
            }
            catch (Exception ex)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, "P_CreateSearchCombo Error" + ex.Message, "P_CreateSearchCombo");

                //エラーメッセージ表示
                str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
                MessageBox.Show("P_CreateSearchCombox" + ex.Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        /// 検索処理
        /// </summary>
        private void P_Search()
        {
            //データセットの制約をOFF(データセット検索時にはこのモードを使用する事)
            //this.ds_F_COM_Search_FB_NO.EnforceConstraints = false;

            //if (this.cmb_Status_Nyk.Visible == true)
            //{
            //    //データの取得
            //    this.uSP_PC_F_COM_Search_FB_NO_DataSelectTableAdapter.Fill(ds_F_COM_Search_FB_NO.USP_PC_F_COM_Search_FB_NO_DataSelect, int.Parse(cmb_Nsyk_KB.SelectedValue.ToString()), int.Parse(cmb_Search_Mode.SelectedValue.ToString()), this.txt_Search_CD.Text, this.cmb_Data_CD.SelectedValue.ToString(), this.cmb_Status_Nyk.SelectedValue.ToString(), G_CommonDefine.G_Status_ST, G_CommonDefine.G_Status_ED);
            //}
            //else
            //{
            //    //データの取得
            //    this.uSP_PC_F_COM_Search_FB_NO_DataSelectTableAdapter.Fill(ds_F_COM_Search_FB_NO.USP_PC_F_COM_Search_FB_NO_DataSelect, int.Parse(cmb_Nsyk_KB.SelectedValue.ToString()), int.Parse(cmb_Search_Mode.SelectedValue.ToString()), this.txt_Search_CD.Text, this.cmb_Data_CD.SelectedValue.ToString(), this.cmb_Status_Syk.SelectedValue.ToString(), G_CommonDefine.G_Status_ST, G_CommonDefine.G_Status_ED);
            //}
            string str_Search_KB = cmb_Nsyk_KB.SelectedValue.ToString();
            string str_Search_Mode = cmb_Search_Mode.SelectedValue.ToString();
            string str_Search_CD = this.txt_Search_CD.Text.Trim();
            string str_Data_CD = this.cmb_Data_CD.SelectedValue.ToString();
            //Job Order No equal Invoice No
            if ((G_CommonDefine.G_Nsk_KB != "1") && (str_Search_Mode == "5"))
            {
                str_Search_Mode = "3";//Invoice No 
            }
            string str_Status = "";
            if (this.cmb_Status_Nyk.Visible == true)
            {
                str_Status = this.cmb_Status_Nyk.SelectedValue.ToString();
            }
            else
            {
                str_Status = this.cmb_Status_Syk.SelectedValue.ToString();
            }
            string str_Status_ST = G_CommonDefine.G_Status_ST;
            string str_Status_ED = G_CommonDefine.G_Status_ED;

            this.dt_FB_NO = G_CommonClassBussniss.G_F_COM_Search_FB_NO_GetData(str_Search_KB, str_Search_Mode, str_Search_CD, str_Data_CD, str_Status, str_Status_ST, str_Status_ED);


            P_BindDataGrid(this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet, this.dt_FB_NO);
            //this.mr_F_COM_Search_FB_NO_SUB.DataSource = this.dt_FB_NO;

        }

        /// <summary>
        /// クリア処理
        /// </summary>
        private void P_Clear()
        {
            //this.cmb_Nsyk_KB.SelectedIndex = 0;
            this.cmb_Status_Nyk.SelectedIndex = 0;
            this.cmb_Status_Syk.SelectedIndex = 0;
            this.cmb_Data_CD.SelectedIndex = 0;
            this.cmb_Search_Mode.SelectedValue = "2";
            this.txt_Search_CD.Text = "";            

            //this.cmb_Nsyk_KB.Enabled = true;
            this.ds_F_COM_Search_FB_NO.Clear();
            this.txt_Search_CD.Focus();
        }

        /// <summary>
        /// サブフォームセルクリック処理
        /// </summary>
        private void P_Sub_CellClick()
        {
            int int_Row = int.Parse(this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.ActiveRowIndex.ToString());

            G_CommonDefine.G_txt_FB_NO.Text = this.ds_F_COM_Search_FB_NO.USP_PC_F_COM_Search_FB_NO_DataSelect.Rows[int_Row]["FB_NO"].ToString();

            this.Close();
        }


        /// <summary>
        /// DataGrid Bind Data
        /// </summary>
        /// <param name="sheet"></param>
        /// <param name="dt"></param>
        private void P_BindDataGrid(FarPoint.Win.Spread.SheetView sheet,DataTable dt)
        {
            if ((dt == null) || (dt.Rows.Count == 0))
            {
                sheet.RowCount = 0;
                return;
            }
            sheet.RowCount = dt.Rows.Count;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow row = dt.Rows[i];
                sheet.Cells[i, 0].Tag = row["FB_NO"];
                sheet.Cells[i, 1].Value = row["FB_NO"];
                sheet.Cells[i, 2].Value = row["Nsk_NM"];
                sheet.Cells[i, 3].Value = row["Data_NM"];
                sheet.Cells[i, 4].Value = row["Todo_NM"];

                sheet.Cells[i, 5].Value = row["Unso_NM"];
                sheet.Cells[i, 6].Value = row["Status_JP"];
                sheet.Cells[i, 7].Value = row["Jyht_NO"];
                sheet.Cells[i, 8].Value = row["Cust_NO"];
                //sheet.Cells[i, 9].Value = row["Cust_NO"];发票号码Invoice No
            }
        }

        /// <summary>
        /// Initialize DataGird
        /// </summary>
        private void P_Initialize()
        {

            string str_Language = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString();

            switch (str_Language)
            {
                case "en":
                    this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet = this.mr_F_COM_Search_FB_NO_SUB_Sheet2;
                    break;
                case "zh-CHS":
                    this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet = this.mr_F_COM_Search_FB_NO_SUB_Sheet1;
                    break;
                default:
                    this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet = this.mr_F_COM_Search_FB_NO_SUB_Sheet2;
                    break;

            }

            this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.RowCount = 0;

            for (int i = 1; i < this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.Columns.Count; i++)
            {
                this.mr_F_COM_Search_FB_NO_SUB.ActiveSheet.Columns[i].Locked = true;
            }
            
        }

        #endregion *************************************************************************

        #region 入力チェック関数 ***********************************************************

        /// <summary>
        /// 検索値入力チェック
        /// </summary>
        private bool P_Check_Search()
        {
            string str_Message = string.Empty;
            string str_Caption = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Error);
            if (!G_CommonClassChk.G_Chk_Null(this.txt_Search_CD.Text))
            {
                str_Message = G_CommonClassSystem.G_System_GetMessage(G_CommonDefine.G_Message_Set_Search_Value);
                MessageBox.Show(str_Message, str_Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.txt_Search_CD.Focus();
                return false;
            }

            return true;
        }

        #endregion *************************************************************************

        #region フォーム共通処理 ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //ショートカットキー処理
        //
        ////////////////////////////////////////////////////////////////////////////
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (this.cc_ShortcutKeyHelper1.PerformClickByKeys(keyData))
            {
                return true;
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        ////////////////////////////////////////////////////////////////////////////
        //フォームKeyDown時処理
        //(エンターを押した際に次のコントロールに移動する。)
        //(フォームの『KeyPreview』を『true』にすること)
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_Search_FB_NO_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!e.Control)
                {
                    this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
                }
            }
        }

        #endregion *************************************************************************

        private void F_COM_Search_FB_NO_Load(object sender, EventArgs e)
        {
            P_CreateSearchCombo();
        }
    }
}